Modems are used in the field of data communications to convey information from one location to another. Most higher-speed modems include a scrambler. A scrambler is a device that pseudo-randomly modifies bits in the serial bit stream before modulation, typically by using a generating polynomial. The rationale for scrambling is to optimize transmission performance by insuring use of the entire signal space independently of any transmitted patterns that may occur in the source data stream. After being scrambled, the bit stream is transmitted over a communication medium. The bit stream is recovered at an opposing end of the communication medium by a descrambler using the same generating polynomial. The descrambler modifies the bits back to their original values. In order for the scrambling/descrambling process to proceed properly, the scrambler and the descrambler must be synchronized with each other.
Modems used on the public switched telephone network (PSTN) and on digital subscriber line (DSL) systems typically use a scrambling process known as self-synchronizing scrambling (S3). The key benefit of S3 is that it automatically resynchronizes the descrambling process with the scrambling process after any type of line disruption or corruption of data without the need to communicate to the opposing end scrambler. Unfortunately, S3 also suffers from the disadvantage of multiplying the number of errors and extending the duration of errors.
FIG. 1 illustrates the prior art problem of error multiplication in systems using S3. Illustrative prior art S3 system 100 includes transmitter 110, which includes scrambler 150, and receiver 120, which includes descrambler 160. Transmitter 110 transmits data to receiver 120 over communication medium 130. Within scrambler 150, shift register 101 stores information and exclusive-OR gate 102 performs modulo-2 addition on the contents of two predetermined shift register locations to form the scrambling signal. For purposes of illustration, it is assumed that two shift register locations, designated J and K in FIG. 1, are used. Of course, as is well known in the art, more than two locations may be used. The data is scrambled by adding the scrambling signal to the data stream in exclusive-OR gate 103 using modulo-2 addition. The scrambled data is typically coupled to a modulator (not shown) and to shift register 101. After being modulated, the scrambled data is transmitted over communication medium 130 to receiver 120. Line errors may occur during transmission.
Within the receiver 120, the scrambled data is typically provided by the output of a demodulator (not shown). After demodulation, the scrambled data is coupled to shift register 104 and exclusive-OR gate 105. The output of exclusive-OR gate 105 is the received data stream. Descrambling is provided by adding the scrambled data with the descrambling signal formed by exclusive-OR gate 106 using modulo-2 addition. Gate 106 forms this descrambling signal, which is identical to the scrambling signal used in the scrambler, by adding the contents of shift register locations J and K using modulo-2 addition The problem of error multiplication arises because a single error in the state of the descrambler input signal, relative to its transmitted counterpart, is coupled to shift register 104 in the descrambler, where it will subsequently appear at least two additional times during the formation of the descrambling signal, effectively tripling the bit error rate. The spacing between the initial bit error and the last additional error generated by the descrambling process is determined by the position of the last shift register location K relative to the shift register input, a typical value commonly used being 23 bits.
It is standard practice to transmit data in formatted blocks referred to as “frames” or more-correctly as “Protocol Data Units” or PDUs. Normally a PDU contains additional data used to detect the presence of transmission errors in the received data. If errors are detected, the entire PDU is normally discarded and retransmitted. In such an arrangement, the disadvantage associated with S3 is particularly pronounced in that, because of the error multiplication properties, a single bit error occurring near the end of one PDU may be extended by the descrambling process into the next PDU requiring retransmission of two completed PDUs. Likewise, when asynchronous transfer mode (ATM) cells are transmitted in a system using S3, there is an increased likelihood that an error near the end of one ATM cell may be extended into the next ATM cell. Such cells are typically created by segmenting larger PDUs and it is common for cells from multiple PDUs to be interleaved. Since a cell is smaller than a typical PDU it is more likely that a three-error burst resulting from a single transmission bit error will span the boundary between two consecutively transmitted cells requiring retransmission of all of the cells produced from two entire PDUs.
Therefore, the error propagation inherent in S3 not only increases bit errors, it may also have a noticeable impact on packet or cell errors and, as a result, on the overall performance of the communication system.
An alternative to S3 is non-self-synchronizing scrambling (NS3). NS3 eliminates the error multiplication and error burst extension shortcomings of S3. However, the use of NS3 has typically been avoided because of the difficulties in maintaining synchronization and recognizing loss of synchronization. NS3 uses a “pseudo-noise sequence” (PNS) generator to provide a signal that both scrambles data for transmission and descrambles the data at the receiver via bit-wise modulo-2 addition. A PNS is a data sequence that includes the randomness properties of true noise, but is nonetheless completely deterministic in that it can be exactly generated by any suitably designed logic that has been set to the correct initial state. The original data is recovered so long as the states of the scrambler and descrambler remain the same relative to the data stream. NS3 does not multiply errors or extend error bursts.
FIG. 2 illustrates a prior art system using NS3. Illustrative prior art NS3 system 200 includes transmitter 210, which includes scrambler 250, and receiver 220, which includes descrambler 260. Within scrambler 250, the scrambling signal is generated by transmitter PNS generator 201. Transmitter 210 and receiver 220 transmit and receive data over communication medium 230, during which line errors may occur.
In contrast to systems using S3, an important aspect of the PNS generator in an NS3 system is that the next state of the PNS generator (and hence its output, which is used to scramble or descramble data) is derived entirely from the previous state and is not dependent on any outside inputs, such as the data stream.
FIG. 3 illustrates a representative prior art PNS generator 201. To form the scrambling signal, exclusive-OR gate 212 modulo-2 adds the contents of two predetermined locations of shift register 211 to form one of the inputs to exclusive-OR gate 213. For purposes of illustration, it is assumed that two shift register locations, designated J and K in FIG. 3, are used. Of course, as is well known in the art, more than two locations may be used. The final step in forming the scrambling signal occurs when a logic high (i.e., a “1”) is applied to the other input of exclusive-OR gate 213. The output of exclusive-OR gate 213 is the scrambling signal, which is modulo-2 added to the transmit data stream in exclusive-OR gate 203 (of FIG. 2) to scramble the data. The output of exclusive-OR gate 213 is also coupled to shift register 211. The initial state of this PNS generator is the contents of the shift register at the time the first bit of output is created. This can be any value that can be represented in K bits except all ones, since all ones produces only the trivial output sequence also composed of all ones. After being scrambled in exclusive-OR gate 203, the scrambled data is typically coupled to a modulator (not shown), where it is modulated and then transmitted over communication medium 230.
In contrast to the S3 case illustrated in FIG. 1, in the NS3 case illustrated in FIGS. 2 and 3, the scrambled signal is not coupled to shift register 211. Instead, the output of exclusive-OR gate 213 is coupled to shift register 211. Thus, the error multiplication problems inherent in S3 are avoided in the NS3 system of FIGS. 2 and 3 by isolating shift register 211 from the data stream.
Returning to FIG. 2, the scrambled data is transmitted to the receiver 220 over communication medium 230. Within the receiver 220, the scrambled data is typically provided by the output of a demodulator (not shown). The output of the demodulator is coupled to exclusive-OR gate 205. Descrambling is provided in exclusive-OR gate 205 by modulo-2 adding the scrambled data with the descrambling signal formed by receive PNS generator 204, which is configured identically to the PNS generator 201 in the transmitter. The output of exclusive-OR gate 205 is the received data stream. It is important to note that in this conventional NS3 arrangement the state of the PNS generators is advanced with each bit of transmitted or received data. So long as synchronization is established and maintained between the scrambler 250 and the descrambler 260, the descrambling signal generated by receive PNS generator 204 is identical to the scrambling signal generated by transmit PNS generator 201. If synchronization is lost, however, the descrambling signal will differ from the scrambling signal, generally resulting in a completely erroneous output (half the bits will be in error). Because the state of the PNS generators is advanced with each bit, maintaining synchronization requires that the demodulator at the receiver always produce the exact same number of bits of output that have been used as input to the modulator at the transmitter.
Initial synchronization of the scrambler and descrambler in a communication system using NS3 can be done during training. However, it is difficult to maintain synchronization because even minor line errors may cause omissions or additions to the transmitted data stream, and even a one bit error can cause loss of synchronization. Moreover, the receiver typically is not able to recognize when loss of synchronization has occurred. Even if loss of synchronization is recognized, the descrambler typically cannot resynchronize itself with the scrambler because the state of the transmit PNS generator 201 is unknown to the receive PNS generator 204. Because of the difficulties in maintaining and restoring synchronization if NS3 is used, S3 has been the preferred synchronization technique, despite its disadvantages in error propagation.
Many commonly used modulation schemes are capable of providing a number of different data rates using the same frequency bandwidth over the transmission medium. This is done by changing the number of bits used to encode a single transmitted symbol. Obviously the more bits that are used the greater is the alphabet of symbols that must be discriminated by the receiver and the greater the likelihood that noise added in transmission may erroneously convert one symbol value to another. This variable data rate capability is frequently beneficially used to allow transmission to continue, although at a lower rate, when the conditions of the transmission medium are degraded to the extent that transmission at the intended rate with an acceptable number of errors is no longer possible. For example, some modulation technologies (collectively referred to as Digital Subscriber Line or DSL modulations) have been developed that allow high speed data transmission over an ordinary telephone line while allowing simultaneous usage of the line for basic “plain old telephone service” (POTS). In such a system, activity of POTS equipment connected to the line, such as transitions between on-hook and off-hook states, ringing signals or pulse dialing signals, may drastically affect the ability to transmit the high speed data at the intended rate. By quickly and temporarily reducing the number of bits per symbol, DSL equipment can maintain transmission of critical data in the presence of such routine disturbances.
Although use of NS3 in such a “rate agile” system as described above may be desirable to eliminate the error multiplication of S3, current NS3 implementations are not practical for such uses. Unless both the transmitter and receiver simultaneously adapt to the new bits-per-symbol data rate on exactly the same transmitted data bit every time the rate is changed, the number of bits received will not match the number of bits transmitted. This means that the PNS generators will not be synchronized and the received data cannot be properly descrambled.
In some communication systems in which multiple stations share a common medium it is beneficial to use a transmission technique generally referred to as Time Domain Duplex or TDD in which, at any point in time, only a single station is transmitting. This allows the transmitting station to use the full “information space” (frequency bandwidth and symbol alphabet space) of the transmission medium and is particularly well suited to transmission of very “bursty” traffic patterns such as commonly occur during access to the Internet and other computer-based information services. In such a system, transmissions are necessarily discontinuous meaning that the bit stream is “started” at the beginning of a transmission and “stopped” at the end. Again, current NS3 implementations are not practical for such systems. Added noise or other degradations may prevent the receiver from recognizing the exact beginning or end of a transmission. When this occurs, the number of bits produced by the receiver differs from the number of bits between the starting and stopping points of the transmit data stream. This causes the same, possibly unrecognizable and unrecoverable, loss of synchronization between the transmitter and receiver PNS generators.
Therefore, there is a need in the industry for a communication device and method that overcome these deficiencies and that provide a practical way for achieving the benefits of NS3 in communication systems.